package com.hqully.smartfumehood.service;

import com.github.pagehelper.PageInfo;
import com.hqully.smartfumehood.common.vo.QueryVo;
import com.hqully.smartfumehood.entity.DevRecord;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hqully.smartfumehood.entity.dto.DevRecordDto;
import org.apache.ibatis.annotations.Param;



/**
 * <p>
 *     设备使用记录服务类
 * </p>
 * @author liulingyu
 * @date 2022-03-09 09:45
 * @version 1.0
 */
public interface DevRecordService extends IService<DevRecord> {


    /**
     * <p>
     *     根据[queryVo]的参数条件查询设备使用记录
     * </p>
     * @date 2022/5/8 9:45 <br>
     * @author liulingyu <br>
     * @param queryVo 查询参数
     * @return {@link PageInfo< DevRecordDto>} 设备使用记录列表
     */
    public PageInfo<DevRecordDto> findAllRecord(QueryVo queryVo);


    /**
     * <p>
     *     根据[queryVo]的参数设备ID查询设备使用记录
     * </p>
     * @deprecated 该功能已整合至{@link #findAllRecord(QueryVo)}
     * @date 2022/5/8 9:46 <br>
     * @author liulingyu <br>
     * @param queryVo 查询参数
     * @return {@link PageInfo< DevRecord>} 设备使用记录列表
     */
    public PageInfo<DevRecord> findRecordByDid(QueryVo queryVo);

    /**
     * <p>
     *     根据[queryVo]的参数设备ID查询设备最新使用记录
     * </p>
     * @deprecated 该功能已整合至{@link #findAllRecord(QueryVo)}
     * @date 2022/5/8 9:46 <br>
     * @author liulingyu <br>
     * @param did 设备ID
     * @return {@link PageInfo< DevRecord>} 设备使用记录列表
     */
    public DevRecord findLatestRecordByDid(@Param("id") String did);

    /**
     * <p>
     *     添加设备使用记录
     * </p>
     * @date 2022/5/8 9:49 <br>
     * @author liulingyu <br>
     * @param record 设备使用记录实体类
     * @return {@link int}
     */
    public int addRecord(DevRecord record);

    /**
     * <p>
     *     根据设备ID删除设备使用记录
     * </p>
     * @date 2022/5/8 9:49 <br>
     * @author liulingyu <br>
     * @param recordId 使用记录ID
     * @return {@link int}
     */
    public int deleteRecord(long recordId);


    /**
     * <p>
     *     更新设备使用记录
     * </p>
     * @date 2022/5/8 12:59 <br>
     * @author liulingyu <br>
     * @param record 设备使用记录实体类
     * @return {@link int}
     */
    public int updateRecord(DevRecord record);

}
